/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package commonlib.drivers;
import commonlib.domain.*;
import java.util.*;

/**
 *
 * @author jorge.daniel.negrete
 */
public class DriverTST {


	public static void main(String[] args) {

		Scanner br=new Scanner(System.in);
		TST<String> ptst=new TST<String>();
        int op=-1;
        System.out.println("Juego De Pruebas de la Clase TST-IteradorTST");
        while(op!=0)
        {
        	System.out.println("Menu de Funciones");
            System.out.println("1.Insertar Palabra Al TST");
            System.out.println("2.Insertar Palabras Al TST");
            System.out.println("3.Consultar si el TST contiene una Palabra");
            System.out.println("4.Limpiar el TST");
            System.out.println("5.Esta Vacio el TST");
            System.out.println("6.Utilizar IteradortTST");
            System.out.println("0.Salir");
           op=br.nextInt();
           switch(op)
           {
           case 1:
        	      System.out.println("Escriba la Palabra");
        	      ptst.add(br.next());
        	      System.out.println("Palabra Agregada");
        	      break;
           case 2:
               	 System.out.println("Escribe el numero de palabras a insertar");
               	 int c=br.nextInt();
        	     System.out.println("Escribe las Palabras");
        	     int j=0;
        	     ArrayList<String> a=new ArrayList<String>();

               	  while(j<c)
               	  {
               		a.add(br.next());
               		j++;
               	  }
      	           ptst.addAll(a);
     	           System.out.println("Palabra Agregada");
     	           break;
           case 3:
        	      System.out.println("Escriba la Palabra a consultar");
     	          if(ptst.contains(br.next()))
     	              System.out.println("Existe");
     	          else
     	        	 System.out.println("No Existe");
     	          break;
           case 4:
        	      ptst.clear();
        	      System.out.println("Tst vacio");
     	          break;
           case 5:
        	      if(ptst.isEmpty())
        	      {
        	    	  System.out.println("El TST esta vacio");
        	      }
        	      else
        	      {
        	    	  System.out.println("El TST no esta vacio");
        	      }
        	      break;
           case 6:

        	   int opI=-1;
        	      IteratorTST<String> i=ptst.iterator();
        	      while(opI!=0)
        	      {
        	    	  System.out.println("1.HasNext");
        	    	  System.out.println("2.Next");
        	    	  System.out.println("3.HasNexBro");
        	    	  System.out.println("4.NextBro");
        	    	  System.out.println("5.HasNextBack");
        	    	  System.out.println("6.NextBack");
        	    	  System.out.println("0.Salir");

        	    	  opI=br.nextInt();
        	    	  switch(opI)
        	    	  {
        	    	  case 1:
        	    		      if(i.hasNext()!=0)
        	    		      {
        	    		    	  System.out.println("tiene mas elementos que recorrer");
        	    		      }
        	    		      else
        	    		      {
        	    		    	  System.out.println("No tiene mas elementos que recorrer");
        	    		      }
        	    	          break;
        	    	  case 2:
        	    		      System.out.println(i.next().getLetter());
        	    		      break;
        	    	  case 3:
        	    		      if(i.hasNextBro())
    	    		          {
    	    		     	     System.out.println("tiene mas hermanos que recorrer");
    	    		          }
    	    		          else
    	    		          {
    	    		    	     System.out.println("No tiene mas hermanos que recorrer");
    	    		          }
        	    	          break;
        	    	  case 4:
              	    		  System.out.println(i.nextBro().getLetter());
    	           		      break;
        	    	  case 5:
    	    		      if(i.hasNextBack()!=0)
    	    		      {
    	    		    	  System.out.println("tiene mas elementos que recorrer atras");
    	    		      }
    	    		      else
    	    		      {
    	    		    	  System.out.println("No tiene mas elementos que recorrer atras");
    	    		      }
    	    	          break;
        	    	  case 6:
          	    		  System.out.println(i.nextBack().getLetter());
	           		      break;
        	    	  }

        	      }
        	      break;
           }

        }




	}

}